import datetime
import fitz


def pdf2img(pdf_path, img_path, dpi=300):
    pdfDoc = fitz.open(pdf_path)
    print(pdfDoc.page_count)
    for index in range(pdfDoc.page_count):
        page = pdfDoc[index]
        # 将页面转换为图片
        rotate = int(0)
        mat = fitz.Matrix(1, 1)
        pix = page.get_pixmap(matrix=mat, dpi=dpi, colorspace='rgb', alpha=False)
        imageName = pdf_path.split("\\")[len(pdf_path.split("\\")) - 1].split(".")[0]
        target_img_name = img_path + f'\\{imageName}_page{index}.png'  # 构造图片名字
        # 保存图片
        pix.save(target_img_name)


if __name__ == "__main__":
    startTime_pdf2img = datetime.datetime.now()  # 开始时间
    # pdf_path = "D:\\Edge下载\\CAD文件\\CAD文件\\[安徽]村级公路网改建工程全套施工图设计103页（含交通工程）\\[安徽]村级公路网改建工程全套施工图设计103页（含交通工程）_pdf.pdf"
    pdf_path = r"D:\Edge下载\CAD文件\CAD文件\1桃源大桥施工图4_281.pdf"
    img_path = "D:\\codeProject\\form_recognition\\images"
    # 可以根据需要修改DPI值
    dpi = 200
    pdf2img(pdf_path, img_path, dpi)

    endTime_pdf2img = datetime.datetime.now()  # 结束时间
    print('===========END==========')
    print('PDF转换图片累计耗时：【%s秒】' % (endTime_pdf2img - startTime_pdf2img).seconds)
